100 REM***********KUDIPLO************** 110 REM FUNKTION DISKUTIEREN + PLOTTEN 120 REM MIT C-64 UND PLOTTER VC-1520 130 REM 140 REM JUERGEN CURDT 150 REM KESSEMEIERWEG 5 160 REM 493 DETMOLD 170 REM 180 REM******************************** 190 POKE53280,11:POKE53281,11:AF=11 200 : 210 REM PARAMETER UND VARIABLE LESEN 220 : 230 EIN=49152:OF=49410:AN=49234:CL=49182:FB=49203 240 F$="SIN(X)+ SIN(X*2)" 250 DEFFNF(X)=SIN(X)+ SIN(X*2) 260 DEFFNF1(X)=(FNF(X+1E-4)-FNF(X-1E-4))/2E-4 270 DEFFNF2(X)=(FNF1(X+1E-4)-FNF1(X-1E-4))/2E-4 280 XU=-4:XO= 4:YU=-4:YO= 4:OY= 0 290 XN= 280:YN= 0 300 XE=(XO-XU)/16:YE=(YO-YU)/16:XW=XU 310 PRINT"[147][144]"TAB(81)"FUNKTIONEN PLOTTEN UND DISKUTIEREN MIT" 320 PRINT" C 64 UND PRINTER-PLOTTER VC-1520 ODER BILDSCHIRMAUSGABE 330 [129]I[178]0[164]39:[153]"POS";:[130]:[153] 335 : 340 [143] EINGABE DER FUNKTION 345 : 350 [153][166]120)"ALS FUNKTION WIRD DARGESTELLT:" 360 X[178]5:Y[178]15:[141]2370:[153]"Y=";F$ 370 [153][163]160):[139][194](49152)[170][194](49153)[178]62[167]400 380 [153][163]5)"EIN WENIG GEDULD BITTE !" 390 [141]5000:[158]CL 395 [147]"HC EPSON*",8,1 400 [153]"ONSTOPSOLL DIE FUNKTION VERAENDERT WERDEN ?":[153][163]57)"J/N" 410 [161]E$:[139]E$[178]"N"[167]590 420 [139]E$[179][177]"J"[167]410 430 [153]"LOADSTOP"[163]80)"BITTE DIE FUNKTION EINGEBEN ODER AENDERN" 440 [129]I[178]0[164]39:[153]"TAN";:[130]:[153] 450 [153]"WENN DIE FUNKTION IM DIVISOR DENCLOSEFAKTOR X ENTHAELT, SOLLTE DER GANZE "; 460 [153]"DIVISOR IN KLAMMERN GESETZT WERDEN.":[153] 470 [129]I[178]0[164]39:[153]"POS";:[130]:[153] 480 X[178]5:Y[178]16:[141]2370:[153]"Y= "F$; 490 [153][163]243)"EINGABE IN UEBLICHER BASIC-SYNTAX 500 X=7:GOSUB2370:INPUTF$ 510 PRINT"[147]"TAB(240)TAB(250)"[144]MOMENT BITTE !" 520 PRINT"[151]240F$="CHR$(34)F$CHR$(34)" 530 [153]"250DEFFNF(X)="F$" 540 PRINT"280 XU="XU"[157]:XO="XO"[157]:YU="YU"[157]:YO="YO"[157]:OY="OY 550 PRINT"1390Y="F$":GOTO1410" 560 PRINT"2260Y="F$":GOTO2280" 570 PRINT"290 XN="XN"[157]:YN="YN:PRINT"SV="SV"[157]:BS="BS"[157]:AF="AF"[157]:GOTO220" 580 POKE631,19:FORI=632TO640:POKEI,13:NEXT:POKE198,9:END 590 PRINT"[147][144]"TAB(120)"DIE PARAMETER FUER DIE DARSTELLUNG:" 600 PRINTTAB(120)"UNTERSTER X-WERT: "XU 610 PRINTTAB(80)"[144]OBERSTER X-WERT: "XO 620 PRINTTAB(120)"[144]UNTERSTER Y-WERT: "YU 630 PRINTTAB(80)"[144]OBERSTER Y-WERT: "YO 640 PRINTTAB(120)"[144]SOLLEN DIE PARAMETER VERAENDERT WERDEN ?":PRINTTAB(17)"J/N" 650 GETE$:IFE$="N"THEN820 660 IFE$<>"J"THEN650 670 PRINT"";:SYSCL:BS=0:SV=0 680 X=16:Y=7:GOSUB2370:INPUTXU 690 X=16:Y=10:GOSUB2370:INPUTXO 700 XE=(XO-XU)/16:IFXE<=0THEN680 710 IFSGN(XU)=SGN(XO)THENXN=80:GOTO730 720 XN=ABS(XU)*25/XE+80 730 X=16:Y=14:GOSUB2370:INPUTYU 740 X=16:Y=17:GOSUB2370:INPUTYO 750 YE=(YO-YU)/16:IFYE=<0THEN730 760 REM ACHSENSCHNITTPUNKT BERECHNEN 770 IFSGN(YU)<>SGN(YO)THEN800 780 IFYO<=0THENYN=200:OY=ABS(YO*25/YE)+200:GOTO810 790 IFYU>=0THENYN=-200:OY=-200-YU*25/YE:GOTO810 800 YN=ABS(YU)*25/YE-200:OY=YN 810 GOTO590 815 : 820 REM HAUPTMENUE 825 : 830 PRINT"[147][144]";:FORI=0TO39:PRINT"[195]";:NEXT 840 PRINT" Y="F$:PRINT" IM BEREICH VON X="XU" BIS X="XO 850 PRINT" SKALENEINHEIT AUF DEM BILDSCHIRM: 860 [153]" X-ACHSE "XE[172]2,"Y-ACHSE "YE[172]2 870 [153]"STOP";:[129]I[178]0[164]39:[153]"LEN";:[130] 880 [153]"STOPDIE AUSGABE ERFOLGT AUF DEM "; 890 [139]AF[178]10[167][153]" PLOTTER WAIT":[137]910 900 [153]"BILDSCHIRM WAIT" 910 [153]"WSTOPECHSEL DES AUSGABEGERAETES WSTOP" 920 [129]I[178]0[164]39:[153]"LEN";:[130] 930 [153][163]51)"WELCHE AUFGABE ? 940 PRINTTAB(40)"Z[153]EICHNEN DER FUNKTION"TAB(38)"Z" 950 PRINTTAB(40)"K[153]URVENDISKUSSION AUSGEBEN"TAB(38)"K" 960 PRINTTAB(40)"P[153]ARAMETER AENDERN"TAB(38)"P" 970 PRINTTAB(40)"F[153]UNKTION AENDERN"TAB(38)"F" 980 PRINTTAB(40)"U[153]MSCHALTEN AUF GRAFIKBILDSCHIRM"TAB(38)"U" 990 PRINTTAB(40)"L[153]OESCHEN DES GRAFIKBILDSCHIRMS"TAB(38)"L" 1000 PRINTTAB(40)"H[153]ARDCOPY DES GRAFIKBILDSCHIRMS"TAB(38)"H" 1010 POKE198,0:SYS62255 1020 GETA$:IFA$<>"W"THEN1050 1030 IFAF<>11THENAF=11:GOTO820 1040 IFAF<>10THENAF=10:GOTO820 1050 IFA$<>"Z"THEN1080 1060 IFAF=10THEN1160 1070 SYSEIN+3:SYSFB,27:GOTO2020 1080 IFA$="F"THEN310 1090 IFA$="L"THENSYSCL:BS=0:GOTO1020 1100 IFA$="K"THENPRINT"[147]":GOSUB1480:GOTO820 1110 IFA$="U"THENSYSEIN+3:SYSFB,27:GOTO2320 1120 IFA$="H"THENSYSEIN+3:SYSFB,27:GOSUB2520:SYSOF:GOTO820 1130 IFA$<>"P"THEN1020 1140 PRINT"[147]"; 1150 SYSCL:GOTO590 1155 : 1160 REM KREUZ PLOTTEN 1165 : 1170 OPEN1,6,1:OPEN2,6,2:OPEN3,6,3:OPEN10,6 1180 IFSVTHEN1330 1190 PRINT#3,0:PRINT#2,1 1200 PRINT#10:PRINT#1,"M";0;-440:PRINT#1,"M";0;-200:PRINT#10 1210 PRINT#1,"M";80;YN:FORI=0TO14STEP2 1220 PRINT#1,"I":PRINT#1,"R";0;4:PRINT#1,"J";0;-4 1230 PRINT#1,"R";-12;-14 1240 PRINT#10,INT((XE*I+XU)*100+.5)/100; 1250 PRINT#1,"M";80+I*25;YN:PRINT#1,"D";80+(I+2)*25;YN 1260 NEXT:PRINT#1,"M";75+I*25;YN-4:PRINT#10,">"; 1270 PRINT#1,"M";XN;-200 1280 FORI=0TO14STEP2:PRINT#1,"I":PRINT#1,"R";4;0 1290 PRINT#1,"J";-4;0:PRINT#1,"R";-30;-4 1300 J=YU+INT(YE*100*I+.5)/100:IFJ<>0THENPRINT#10,J; 1310 PRINT#1,"M";XN;I*25-200:PRINT#1,"D";XN;(I+2)*25-200 1320 NEXT:PRINT#1,"M";XN-5;I*25-209:PRINT#3,1:PRINT#10,"^"; 1325 : 1330 REM KURVE PLOTTEN 1335 : 1340 PRINT"[147][144]"TAB(250)"ETWAS GEDULD BITTE":PRINT#2,SV+3 1350 E$="M":XW=XU:IFXU=0THENXW=1E-6 1360 GOSUB2340 1370 J=(XO-XU)/400:FORI=0TO400 1380 X=J*I+XW 1390 Y=SIN(X)+ SIN(X*2):GOTO1410 1400 E$="M":GOTO1440 1410 Y=Y/YE*25+OY 1420 IFY>210ORY<-210THENE$="M":GOTO1440 1430 PRINT#1,E$;I+80;Y:E$="D" 1440 NEXT:GOSUB2350 1450 PRINT#1,"M";0;180-SV*20:PRINT#3,1:PRINT#10,"Y="F$; 1460 PRINT#1,"M";0;-250 1470 SV=SV+1:SYS62255:GOTO820 1480 REM KURVENDISKUSSION AUSGEBEN 1490 OPEN1,6,1:OPEN2,6,2:OPEN3,6,3:OPEN10,6:OPEN11,3 1500 IFAF=10THENPRINT#1,"M";0;180-SV*25:PRINT#3,0 1510 PRINT"[147]FUNKTION:":PRINTTAB(6)"Y="F$ 1520 PRINT#AF 1530 PRINT#AF,"KURVENDISKUSSION VON X="XU"BIS X="XO:PRINT#AF 1540 PRINT#AF," NULLSTELLEN:" 1550 S1=XE/5:GOSUB2340 1560 A=FNF(XU-1E-4) 1570 FORX=XU+S1TOXOSTEPS1 1580 F=FNF(X) 1590 IFSGN(F)=SGN(A)THEN1720 1600 S=X-S1:Z=X:C=X-S1/2 1610 FC=FNF(C) 1620 FZ=FNF(Z) 1630 IFSGN(FC)<>SGN(FZ)THENS=C:GOTO1650 1640 Z=C 1650 C=(S+Z)/2 1660 IFABS(Z-S)>1E-6THEN1610 1670 FD=FNF1(C) 1680 IFABS(FC)<1E-4THEN1710 1690 IFABS(FD)>1E3THENPRINT#AF," SPRUNG BEI X="INT(C*1E4+.5)/1E4:GOTO1720 1700 GOTO1610 1710 PRINT#AF,TAB(6)INT(C*1E4+.5)/1E4;"/0","F'=";INT((FD)*1E4+.5)/1E4 1720 A=F 1730 NEXTX 1740 PRINT#AF," EXTREMA:":XW=XU 1750 A=FNF1(XW) 1760 FORX=XU+S1TOXOSTEPS1 1770 F=FNF1(X) 1780 IFSGN(F)=SGN(A)THEN1940 1790 S=X-S1:Z=X:C=X-S1/2 1800 FC=FNF1(C) 1810 FZ=FNF1(Z) 1820 IFSGN(FC)<>SGN(FZ)THENS=C:GOTO1840 1830 Z=C 1840 C=(S+Z)/2 1850 IFABS(Z-S)>1E-5THEN1800 1860 IFABS(FC)<1E-2THEN1880 1870 GOTO1950 1880 FD=FNF2(C) 1890 IFABS(FD)<1E-5THENPRINT#AF," SATTEL";:GOTO1920 1900 IFFD>0THENPRINT#AF," MIN.";:GOTO1920 1910 IFFD<0THENPRINT#AF," MAX."; 1920 FA=FNF(C):GOTO1930 1930 PRINT#AF,TAB(7)INT(C*1E4+.5)/1E4"/"INT(FA*1E4+.5)/1E4:GOTO1950 1940 IFABS(F)<1E-6THENC=X:GOTO1890 1950 A=F:NEXTX:GOSUB2350:POKE198,0:IFAF<>10THEN2000 1960 PRINT#1,"M";0;-275 1970 PRINTTAB(15)" FERTIG [146]" 1980 PRINT" IN DAS GLEICHE ACHSENKREUZ KANN KEINE" 1990 PRINT" WEITERE FUNKTION GEPLOTTET WERDEN !":WAIT198,1:GOTO820 2000 PRINTTAB(10)"ENDE DER AUSGABE[146]":SYS62255:WAIT198,1:RETURN 2010 : 2020 REM AUSGABE AUF BILDSCHIRM 2030 : 2040 REM Y-ACHSE-ZEICHNEN BS 2050 YK=(200-YN)*.5:IFYK<0THENYK=0 2060 IFYK>199THENYK=199 2070 IFBSTHEN2230 2080 BS=1:XK=(XN-80)*.5+60 2090 FORY=0TO199:SYSAN,XK,Y:NEXT 2100 UN=XK-2 2120 FORI=0TO7 2130 FORJ=UNTOUN+5:SYSAN,J,I*25:NEXTJ,I 2140 UN=YK-3:IFUN<0THENUN=0 2150 IFUN+5>199THENUN=194 2160 FORX=60TO259:SYSAN,X,YK:NEXT 2170 FORI=0TO8:FORJ=UNTOUN+5 2180 SYSAN,I*25+60,J 2190 NEXTJ,I 2200 : 2210 REM KURVE ZEICHNEN BS 2220 : 2230 GOSUB2340:XW=XU:IFXW=0THENXW=1E-6 2240 J=(XO-XU)/200:YK=100-OY/2 2250 FORI=1TO200:X=J*I+XW 2260 Y=SIN(X)+ SIN(X*2):GOTO2280 2270 GOTO2310 2280 Y=YK-Y/YE*12.5 2290 IFY<0ORY>199THEN2310 2300 SYSAN,I+60,Y 2310 NEXT:GOSUB2350 2320 POKE198,0:WAIT198,1:SYSOF:GOTO820 2330 REM UP FEHLERROUTINE EIN- AUS 2340 POKE768,23:POKE769,193:RETURN 2350 POKE768,139:POKE769,227:RETURN 2360 REM UP CURSOR POSITIONIEREN 2370 POKE211,X:POKE214,Y:SYS58732:RETURN 2380 : 2500 REM UP HARDCOPY DRUCKEN 2510 : 2520 SYS62255 2530 REM EINSPRUNG IN DAS MP HARDCOPY: 2540 SYS49440,8192,3 2550 SYS62255:SYSOF 2555 REM HARDCOPY BESCHRIFTEN: 2560 OPEN1,4:PRINT#1:PRINT#1 2565 PRINT#1," FUNKTION: Y="F$ 2570 PRINT#1," SKALENEINHEIT AUF DER X-ACHSE:"XE*2 2580 PRINT#1," Y-ACHSE:"YE*2 2590 PRINT"[147]"TAB(240)" SOLL DIE KURVENDISKUSSION AUSGEDRUCKT 2600 [153][163]55)"WERDEN ?":[153][163]57)"J/N" 2610 [161]A$:[139]A$[178]"N"[167]2640 2620 [139]A$[179][177]"J"[167]2610 2630 AF[178]1:[141]1510:AF[178]11 2640 [158]62255:[142] 5000 : 5010 [143] ERSTELLEN DES MP. FEINGRAFIK 5020 : 5030 [129]I[178]49152[164]49429 5040 [135]X:[151]I,X:[130] 5050 [131]32,30,192,173,17,208,141,17,193,173,24,208,141,18,193,169,59,141,17 5060 [131]208,169,24,141,24,208,162,16,76,57,192,160,0,162,32,132,253,134,254 5070 [131]152,234,145,253,200,208,251,230,254,202,208,246,96,32,253,174,32,158 5080 [131]183,160,0,169,4,132,253,133,254,138,162,4,145,253,200,208,251,230,254 5090 [131]202,208,246,96,169,128,44,169,0,133,151,32,253,174,32,235,183,224,200 5100 [131]176,238,165,21,201,1,144,8,208,230,165,20,201,64,176,224,138,74,74 5110 [131]74,10,168,185,200,192,141,20,193,185,201,192,141,21,193,138,41,7,24 5120 [131]109,20,193,141,20,193,165,20,41,248,141,19,193,24,169,0,109,20,193 5130 [131]133,253,169,32,109,21,193,133,254,24,165,253,109,19,193,133,253,165 5140 [131]254,101,21,133,254,165,20,41,7,73,7,170,189,250,192,160,0,36,151,16 5150 [131]5,73,255,49,253,44,17,253,145,253,96,0,0,64,1,128,2,192,3,0,5,64,6 5160 [131]128,7,192,8,0,10,64,11,128,12,192,13,0,15,64,16,128,17,192,18,0,20 5170 [131]64,21,128,22,192,23,0,25,64,26,128,27,192,28,0,30,1,2,4,8,16,32,64 5180 [131]128,173,17,193,141,17,208,173,18,193,141,24,208,76,68,229,0,0,0,0,0 5190 [143] ERSTELLEN FEHLERROUTINE 5200 [129]I[178]49431[164]49439:[135]X:[151]I,X:[130] 5210 [131]138,48,3,76,59,169,76,116,164 5220 [142] 5230 [143] ENDE